home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d21 / qemmnote.arc / BUS-MAST.TEC next >
Text File  |  1991-06-26  |  6KB  |  120 lines

  1. ID:BU Bus-Mastering Devices and QEMM-386
  2. Quarterdeck Technical Note #121
  3. by Stan Young
  4.  
  5.  
  6.     Bus-Mastering Devices, QEMM-386 and Virtual DMA Services
  7.  
  8. Q: What is a bus-mastering device and what problems might be seen 
  9. when using one?
  10.  
  11. Bus-mastering devices are ones which do their own direct memory 
  12. addressing (DMA).  DMA is done without going through the 
  13. machine's processor.  The most common bus-mastering devices we 
  14. see currently are SCSI hard disk controllers, but technically, 
  15. other types of devices could be bus-mastering as well.  The 
  16. problem seen with bus-mastering devices is that while they are 
  17. high-performance devices and quite often found on 386 and 486 
  18. machines, they are unfortunately, in their design, incompatible 
  19. with one of the operating modes of the 80386 and i486 processors 
  20. -- the Virtual 86 mode.
  21.  
  22. Specifically, the problem is that the device puts data into 
  23. absolute memory addresses and assumes that the contents of those 
  24. memory addresses will always remain constant.  However, on a 386 
  25. machine with the processor in Virtual 86 mode, this can often be 
  26. an incorrect assumption.  In Virtual 86 mode, the same physical
  27. memory addresses can, at any given moment hold different data,
  28. depending on which virtual machine is current.
  29.  
  30. If you are using a bus-mastering device on a 386 or 486 that is 
  31. in Virtual 86 mode and actual memory paging is occurring (the 
  32. switching from one virtual machine to another), your machine will 
  33. probably hang when you use the bus-mastering device.
  34.  
  35. A "real world" example:  
  36.  
  37. Quarterdeck first became aware of the problem from customers who 
  38. had bus-mastering SCSI hard disk controllers.  They reported that 
  39. they could boot their machines, start our multitasking DESQview 
  40. software and as long as they ran only one application, their 
  41. system ran fine.  As soon as they opened a second application, 
  42. the system would hang.  The problem was also seen by users who 
  43. were not using DESQview, but who were using the LOADHI feature of 
  44. QEMM-386.
  45.  
  46. In this case, the hang occurred because the disk controller would 
  47. prepare to load some absolute memory addresses with data 
  48. pertaining to an application that was running, but by the time 
  49. the data was actually transferred to these addresses, QEMM-386 
  50. had switched the memory map.  Those absolute memory addresses no 
  51. longer belonged to the application which could process the data.  
  52. They belonged instead to some other application or process.  In 
  53. theory, this could have caused data corruption, but in reality it 
  54. never did.  The memory corruption was typically so extensive that 
  55. the systems simply hung as soon as a change in the memory map 
  56. occurred.
  57.  
  58. Q: How can the problem with running Bus-mastering devices in 
  59. Virtual 86 mode be corrected?
  60.  
  61. A: There are four possible solutions:
  62.  
  63. 1) QEMM 5.00 (and later versions) has a DB=xx (DISKBUF=xx) 
  64. parameter which should prevent QEMM-SCSI problems at the expense 
  65. of a little conventional memory.  xx is the number of K used for 
  66. buffering.  Any value for xx is sufficient to correct the 
  67. problem.  DISKBUF=2 would be fine for most cases. Higher numbers, 
  68. say up to 10 might improve performance.  Setting DISKBUF to more 
  69. than 10 is probably a waste of memory.
  70.  
  71. This approach will not work in cases where the bus-mastering 
  72. device is something other than a hard disk.
  73.  
  74. 2) Similarly, the drivers of many bus-mastering hard disks
  75. have buffering options.  Check the documentation for your disk 
  76. controller to see if the driver has a parameter to set up 
  77. buffering for disk operations.  Some drivers will also document 
  78. parameters that are specific to 386 operations.  For example,
  79. the early Adaptec drivers SCSIHA.SYS and AHA1540.SYS included 
  80. both 386 and disk buffering options invoked by the parameters 
  81. "/v386" and "/b:64."  "/v386" stands for virtual 386; "/b:64" 
  82. allocates a 64k buffer, for DMA.  
  83.  
  84. 3) Check the documentation for your bus-mastering device and see 
  85. if it can be configured to use the BIOS or any one of the 
  86. standard DMA channels.  QEMM can correct the problem if the BIOS 
  87. or standard DMA channels are used.
  88.  
  89. 4) THE BEST SOLUTION:  Contact the maker of your bus-mastering 
  90. device and see if they have a driver available which supports the 
  91. VDS (Virtual DMA Services) specification.  VDS is now an 
  92. industry-wide specification supported by IBM, Microsoft and 
  93. Quarterdeck, as well as many other hardware and software 
  94. suppliers.  A VDS driver allows a bus-mastering device to find 
  95. the real physical address of its data when the processor is in 
  96. Virtual 86 mode.
  97.  
  98. QEMM 5.00 (and later versions) supports the VDS specification.
  99. A VDS driver provides the best solution to this problem in terms 
  100. of reliability, speed and memory efficiency.  
  101.  
  102. Q:  I know I have a bus-mastering device on my computer, but I 
  103. haven't seen any problem.  Why not?
  104.  
  105. A:  It's possible that your bus-mastering device uses a standard 
  106. DMA channel for DMA operations.  QEMM-386 can correct the problem 
  107. when standard DMA channels are used.  
  108.  
  109. Also, it is quite possible that your bus-mastering device was 
  110. shipped with a VDS driver.  Bus-mastering hard disk controllers 
  111. are starting to ship with drivers that make VDS calls, and these 
  112. drivers do not require the DB parameter or any other buffering.  
  113. We expect that most bus-mastering devices will eventually include 
  114. VDS drivers and therefore will not exhibit any problems when run 
  115. in Virtual 86 mode.
  116.  
  117.         Copyright (C) 1991 by Quarterdeck Office Systems
  118.              * * *   E N D   O F   F I L E    * * * 
  119.  
  120.